﻿
Partial Class Interfaz_frmSistemaAdminGrupos
    Inherits System.Web.UI.Page
    Dim CL As New ControladorLogica

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If CL.visibilidadesFormsInternos("Sistema", Session("user").ToString) = False Then
            Response.Redirect("Index.aspx")
        End If
        Dim ArrayUsuarios As New ArrayList
        Dim ArrayGrupo As New ArrayList
        Dim i As Integer

        ArrayUsuarios = CL.ObtenerUsuario()
        ArrayGrupo = CL.ObtenerGrupo()

        If Not Page.IsPostBack Then
            For i = 0 To ArrayUsuarios.Count - 1
                Me.DropUserSistema.Items.Add(DirectCast(ArrayUsuarios.Item(i), Usuario).User)
            Next
            For i = 0 To ArrayGrupo.Count - 1
                Me.DropGrupos.Items.Add(DirectCast(ArrayGrupo.Item(i), GrupoUsuario).nombreGrupo)
            Next
        End If
    End Sub

#Region "Funciones"

    Private Sub CargarUsuariosGrupo()

        Dim ArrayUsuariosGrupo As New ArrayList
        Dim i As Integer
        ArrayUsuariosGrupo = CL.ObtenerUsuariosCriterio(Me.DropGrupos.Text)

        If ArrayUsuariosGrupo.Count = 0 Then
            MsgBox("No existen usuarios asociados al grupo seleccionado")
        Else
            For i = 0 To ArrayUsuariosGrupo.Count - 1
                ListUserGroup.Items.Add(DirectCast(ArrayUsuariosGrupo.Item(i), Usuario).User)
            Next
        End If
    End Sub

    Private Sub DeleteUsuarios()
        Dim nombreUser As String = ""
        Dim i As Integer
        For i = 0 To Me.DeleteUser.Items.Count - 1
            nombreUser = Me.DeleteUser.Items(i).ToString
            CL.ResetGroupUser(nombreUser)
        Next

        If Me.DeleteUser.Items.Count <> 0 Then
            MsgBox("Usuarios Eliminados del Grupo")
        End If
    End Sub

    Private Sub AgregarUsuariosDelete()
        Me.DeleteUser.Items.Add(ListUserGroup.Text)
        Me.ListUserGroup.Items.Remove(ListUserGroup.Text)
    End Sub

    Private Sub AgregarUsuarios()
        Dim fkGrupoUser As String
        Dim idGrupo As String
        Dim query As String

        query = "select id from grupousuarios where nombregrupo ='" + Me.DropGrupos.Text + "'"
        idGrupo = CL.Ejecuta(query).Item("id").ToString
        query = "select fkgrupousuarios from usuariosistema where usuario='" + Me.DropUserSistema.Text + "'"
        fkGrupoUser = CL.Ejecuta(query).Item("fkgrupousuarios").ToString

        If (fkGrupoUser = idGrupo) Then
            MsgBox("El usuario ya pertenece al grupo")
        Else
            Me.ListUserGroup.Items.Add(Me.DropUserSistema.Text)
        End If
    End Sub

    Private Sub addUser()
        Dim idGrupo As String
        Dim query As String
        Dim nombreUsuario As String
        Dim i As Integer

        query = "select id from grupousuarios where nombregrupo ='" + Me.DropGrupos.Text + "'"
        idGrupo = CL.Ejecuta(query).Item("id").ToString

        For i = 0 To Me.ListUserGroup.Items.Count - 1
            nombreUsuario = Me.ListUserGroup.Items(i).ToString
            CL.ActualizarUsuario(nombreUsuario, idGrupo)
        Next

    End Sub
#End Region

#Region "Botones"
    Protected Sub BtnVer_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnVer.Click
        Me.ListUserGroup.Items.Clear()
        Me.CargarUsuariosGrupo()
    End Sub

    Protected Sub BtnAddUser_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnAddUser.Click
        AgregarUsuarios()
    End Sub

    Protected Sub BtnMove_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnMove.Click
        AgregarUsuariosDelete()
    End Sub

    Protected Sub BtnValidar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnValidar.Click
        DeleteUsuarios()
        Me.DeleteUser.Items.Clear()
        addUser()
        Me.ListUserGroup.Items.Clear()
    End Sub
#End Region

    
    
End Class
